API Documentation
TabWindow.h
1 // TabWindow.h
3 //
5 
6 namespace nkWinUi
7 {
11  class TabWindow : public Component
12  {
13  public :
14 
18  class Tab
19  {
20  public :
21 
25  Tab () ;
29  virtual ~Tab () ;
30 
31  // Getters
35  const char* getLabel () const ;
43  int getId () const ;
48 
49  // Setters
56  virtual void setLabel (const std::string_view& label, bool autoUpdate = true) ;
62  void setAssociatedWin (Window* win) ;
68  void setId (int id) ;
74  void setParentWindow (TabWindow* parent) ;
75  } ;
76 
77  public :
78 
82  TabWindow () ;
87 
96  virtual Tab* addTab (const std::string_view& label) ;
101  Tab* getTabByLabel (const std::string_view& label) const ;
106  Tab* getTabById (int id) const ;
111  Tab* getTabByIndex (unsigned int index) const ;
116  virtual Tab* getTabByMouseRel (const nkMaths::Point& mouseRel) const = 0 ;
124  int getTabIndex (Tab* tab) const ;
128  unsigned int getTabCount () const ;
138  virtual void reorderTab (Tab* tab, unsigned int newIndex) ;
145  virtual void changeTabLabel (const std::string_view& oldLabel, const std::string_view& newLabel) ;
151  virtual void eraseTab (const std::string_view& label) ;
152 
157  virtual Layout* setLayout (LAYOUT_TYPE layoutType) override ;
158 
164  virtual void setActiveTab (Tab* toActivate) ;
168  Tab* getActiveTab () const ;
169 
175  virtual void adaptToDisplayArea (Window* toAdapt) const = 0 ;
176 
185  void setTabSwitchCallback (std::function<bool (TabWindow*, TabWindow::Tab*, bool)> value) ;
193  void setClickCallback (std::function<bool (TabWindow*, const ClickEventData&)> value) ;
197  const std::function<bool (TabWindow*, TabWindow::Tab*, bool)>& getTabSwitchCallback () const ;
201  const std::function<bool (TabWindow*, const ClickEventData&)>& getClickCallback () const ;
202 
206  virtual void exportIntrospection (nkExport::Node* rootNode) override ;
210  void importClassFromTree (nkExport::Node* rootNode) override ;
211  } ;
212 }
nkWinUi::ClickEventData
Data holder for a click event.
Definition: ClickEventData.h:12
nkWinUi::TabWindow::getTabByLabel
Tab * getTabByLabel(const std::string_view &label) const
nkWinUi::TabWindow::setLayout
virtual Layout * setLayout(LAYOUT_TYPE layoutType) override
nkWinUi::LAYOUT_TYPE
LAYOUT_TYPE
Defines the type of layout available.
Definition: LayoutType.h:12
nkWinUi::TabWindow::addTab
virtual Tab * addTab(const std::string_view &label)
nkWinUi::TabWindow::Tab::Tab
Tab()
nkWinUi::TabWindow::Tab::setAssociatedWin
void setAssociatedWin(Window *win)
nkWinUi::Layout
Represents a layout to organize sub-windows in a window.
Definition: Layout.h:12
nkWinUi::TabWindow::getActiveTab
Tab * getActiveTab() const
nkWinUi::TabWindow::~TabWindow
~TabWindow()
nkWinUi::TabWindow::Tab::setLabel
virtual void setLabel(const std::string_view &label, bool autoUpdate=true)
nkWinUi::TabWindow::Tab::getAssociatedWin
Window * getAssociatedWin() const
nkWinUi::Component
Base class for any graphical component.
Definition: Component.h:12
nkWinUi::TabWindow::getClickCallback
const std::function< bool(TabWindow *, const ClickEventData &)> & getClickCallback() const
nkWinUi::TabWindow::setTabSwitchCallback
void setTabSwitchCallback(std::function< bool(TabWindow *, TabWindow::Tab *, bool)> value)
nkWinUi::TabWindow::adaptToDisplayArea
virtual void adaptToDisplayArea(Window *toAdapt) const =0
nkWinUi::TabWindow::TabWindow
TabWindow()
nkWinUi::TabWindow::Tab::setParentWindow
void setParentWindow(TabWindow *parent)
nkWinUi::TabWindow::Tab::setId
void setId(int id)
nkWinUi::TabWindow::reorderTab
virtual void reorderTab(Tab *tab, unsigned int newIndex)
nkWinUi::TabWindow::eraseTab
virtual void eraseTab(const std::string_view &label)
nkExport::Node
A node in the tree structure representing the data to export / import.
Definition: Node.h:42
nkWinUi::TabWindow::getTabByMouseRel
virtual Tab * getTabByMouseRel(const nkMaths::Point &mouseRel) const =0
nkMaths::Point
Represents a 2D Point.
Definition: Point.h:12
nkWinUi::TabWindow::importClassFromTree
void importClassFromTree(nkExport::Node *rootNode) override
nkWinUi::TabWindow::Tab
Holds information about a tab in the window.
Definition: TabWindow.h:19
nkWinUi::Window
A graphical window.
Definition: Window.h:12
nkWinUi::TabWindow::exportIntrospection
virtual void exportIntrospection(nkExport::Node *rootNode) override
nkWinUi::TabWindow::setActiveTab
virtual void setActiveTab(Tab *toActivate)
nkWinUi::TabWindow::getTabCount
unsigned int getTabCount() const
nkWinUi::TabWindow::changeTabLabel
virtual void changeTabLabel(const std::string_view &oldLabel, const std::string_view &newLabel)
nkWinUi::TabWindow::getTabSwitchCallback
const std::function< bool(TabWindow *, TabWindow::Tab *, bool)> & getTabSwitchCallback() const
nkWinUi::TabWindow::getTabById
Tab * getTabById(int id) const
nkWinUi::TabWindow::Tab::getLabel
const char * getLabel() const
nkWinUi
Encompasses all API of component NilkinsWinUi.
Definition: Button.h:7
nkWinUi::TabWindow::Tab::getParentWindow
TabWindow * getParentWindow() const
nkWinUi::TabWindow
A graphical tab window.
Definition: TabWindow.h:12
nkWinUi::TabWindow::Tab::getId
int getId() const
nkWinUi::TabWindow::getTabByIndex
Tab * getTabByIndex(unsigned int index) const
nkWinUi::TabWindow::setClickCallback
void setClickCallback(std::function< bool(TabWindow *, const ClickEventData &)> value)
nkWinUi::TabWindow::Tab::~Tab
virtual ~Tab()
nkWinUi::TabWindow::getTabIndex
int getTabIndex(Tab *tab) const